home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / src / X11 / xarchie-2.0.9 / xutil.c < prev    next >
C/C++ Source or Header  |  1995-06-18  |  2KB  |  116 lines

  1. /*
  2.  * xutil.c : Miscellaneous X functions
  3.  *
  4.  * George Ferguson, ferguson@cs.rochester.edu, 23 Apr 1993.
  5.  */
  6.  
  7. #include <stdio.h>
  8. #include <X11/Intrinsic.h>
  9. #include <X11/Xaw/Text.h>
  10. #include <X11/StringDefs.h>
  11.  
  12. /*
  13.  * Functions defined here:
  14.  */
  15. void setWidgetString();
  16. void setWidgetLabel();
  17. char *getWidgetString();
  18. void appendWidgetText();
  19.  
  20. /*    -    -    -    -    -    -    -    -    */
  21.  
  22. /*
  23.  * setWidgetString() : Set the given Text item's value to the given string.
  24.  */
  25. void
  26. setWidgetString(w,str)
  27. Widget w;
  28. char *str;
  29. {
  30.     Arg args[1];
  31.  
  32.     if (w != NULL && str != NULL) {
  33.     XtSetArg(args[0],XtNstring,str);
  34.     XtSetValues(w,args,1);
  35.     }
  36. }
  37.  
  38. /*
  39.  * setWidgetLabel() : Set the given Label item's label to the given string.
  40.  */
  41. void
  42. setWidgetLabel(w,str)
  43. Widget w;
  44. char *str;
  45. {
  46.     Arg args[1];
  47.  
  48.     if (w != NULL && str != NULL) {
  49.     XtSetArg(args[0],XtNlabel,str);
  50.     XtSetValues(w,args,1);
  51.     }
  52. }
  53.  
  54. /*    -    -    -    -    -    -    -    -    */
  55.  
  56. char *
  57. getWidgetString(widget)
  58. Widget widget;
  59. {
  60.     Arg args[1];
  61.     char *s;
  62.  
  63.     XtSetArg(args[0],XtNstring,&s);
  64.     XtGetValues(widget,args,1);
  65.     return(s);
  66. }
  67.  
  68. char *
  69. getWidgetLabel(widget)
  70. Widget widget;
  71. {
  72.     Arg args[1];
  73.     char *s;
  74.  
  75.     XtSetArg(args[0],XtNlabel,&s);
  76.     XtGetValues(widget,args,1);
  77.     return(s);
  78. }
  79.  
  80. /*    -    -    -    -    -    -    -    -    */
  81. /* Improved by Tim Auckland <tda10@cus.cam.ac.uk> */
  82.  
  83. void
  84. appendWidgetText(w,text)
  85. Widget w;
  86. char *text;
  87. {
  88.     XawTextBlock block;
  89.     XawTextPosition pos;
  90.     XawTextEditType saved;
  91.     Arg args[1];
  92.  
  93.     if ((block.length=strlen(text)) == 0)
  94.     return;
  95.     block.firstPos = 0;
  96.     block.format = FMT8BIT;
  97.     block.ptr = text;
  98.     XtCallActionProc(w,"end-of-file",NULL,NULL,0);
  99.     pos = XawTextGetInsertionPoint(w);
  100.     XtSetArg(args[0],XtNeditType,&saved);
  101.     XtGetValues(w,args,1);
  102.     XtSetArg(args[0],XtNeditType,XawtextAppend);
  103.     XtSetValues(w,args,1);
  104.     switch (XawTextReplace(w,pos,pos,&block)) {
  105.     case XawPositionError:
  106.         fprintf(stderr,"XawPositionError: `%s'\n",block.ptr);
  107.         break;
  108.     case XawEditError:
  109.         fprintf(stderr,"XawEditError: `%s'\n",block.ptr);
  110.         break;
  111.     }
  112.     XtSetArg(args[0],XtNeditType,saved);
  113.     XtSetValues(w,args,1);
  114.     XtCallActionProc(w,"end-of-file",NULL,NULL,0);
  115. }
  116.